using System;
using System.Collections.Generic;
using System.Data;
using System.Data.Common;
using System.Text;
using XP.AD;

public class DUsuarios : XP.AD.Datos<DUsuarios>
{

    #region Consultas

    /******** VALOR/REGISTRO ÚNICO *********/

    public static DataSet AutenticarUsuario(string cuenta)
    {
        return bd.EjecutarConsultaProc("AutenticarUsuario",
            bd.CrearParametro("Cuenta", cuenta, DbType.AnsiString, 30));
    }

    /********** VARIOS REGISTROS ***********/
    public static DataSet TraerMenuUsuario(int idUsuario)
    {
        return bd.EjecutarConsultaProc("TraerMenuUsuario",
            bd.CrearParametro("IdUsuario", idUsuario, DbType.Int32));
    }
    public static DataSet BuscarUsuarios(string NombreUsuario)
    {
        StringBuilder sb = new StringBuilder();
        sb.Append(@"
                    SELECT
	                    u.idusuario,
	                    (emp.nombre+' '+emp.ap_paterno+' '+emp.ap_materno)nombre_empleado,
	                    tu.nombre_tipo tipo,
	                    u.nombre_usuario,
	                    u.descripcion
                    FROM
	                    usuario u
	                    JOIN empleado emp ON emp.idempleado=u.idempleado
	                    JOIN tipo_usuario tu ON tu.idtipo=u.idtipo
                    WHERE u.idusuario>0 AND    ");
        if (!string.IsNullOrEmpty(NombreUsuario))
        {
                sb.AppendFormat(" u.nombre_usuario ", NombreUsuario);
         
        }
        sb.Length = sb.Length - 7;
        sb.Append(" ORDER BY u.nombre_usuario");
        return bd.EjecutarConsulta(sb.ToString());
    }

    /************** REPORTES ***************/



    #endregion

    #region Verificaciones

    public static bool VerificarAccesoPantallaUsuario(int idUsuario, string ruta)
    {
        return Convert.ToInt32(bd.EjecutarValorProc("VerificarAccesoPantallaUsuario",
            bd.CrearParametro("IdUsuario", idUsuario, DbType.Int32),
            bd.CrearParametro("Ruta", ruta, DbType.AnsiString, 300))) > 0;
    }

    #endregion

    #region Transacciones



    #endregion

    #region Procesos



    #endregion

}
